Method and apparatus for processing satellite positioning system signals

ABSTRACT

Method and apparatus for processing a satellite positioning system (SPS) signal is described. In one example, a timing reference related to a SPS time of day is obtained from a wireless communication signal received by a mobile receiver. A bias in a local clock of the mobile receiver with respect to a frame timing of a repeating code broadcast by the satellite is compensated for in response to the timing reference. An expected code delay window is obtained for the SPS signal at the mobile receiver. The SPS signal is correlated with a reference code within the expected code delay window. In another example, an expected code delay window is obtained at the mobile receiver. The mobile receiver selects a sampling resolution in response to a size of the expected code delay window. The SPS signal is sampled at the selected sampling resolution and then correlated with a reference code.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 12/388,316, filed Feb. 18, 2009 and is a divisional patent application of and claims priority to co-pending U.S. patent application Ser. No. 10/838,517 filed May 4, 2004. U.S. patent application Ser. No. 10/838,517 is a continuation-in-part of the following U.S. patent applications:

(1) U.S. patent application Ser. No. 10/295,332, filed Nov. 15, 2002, which is a continuation of U.S. patent application Ser. No. 09/990,479, filed Nov. 21, 2001 (now U.S. Pat. No. 6,487,499), which is a continuation of U.S. patent application Ser. No. 09/553,930, filed Apr. 21, 2000 (now U.S. Pat. No. 6,453,237), which claims priority to U.S. provisional patent application No. 60/130,882, filed Apr. 23, 1999; (2) U.S. patent application Ser. No. 10/359,468, filed Feb. 5, 2003, which is a continuation of U.S. patent application Ser. No. 09/989,625, filed Nov. 20, 2001 (now U.S. Pat. No. 6,587,789), which is a divisional of U.S. patent application Ser. No. 09/615,105, filed Jul. 13, 2000 (now U.S. Pat. No. 6,411,892); (3) U.S. patent application Ser. No. 10/665,703, filed Sep. 19, 2003, which is a divisional of U.S. patent application Ser. No. 09/900,499, filed Jul. 6, 2001 (now U.S. Pat. No. 6,704,348), which is a continuation-in-part of U.S. patent application Ser. No. 09/861,086, filed May 18, 2001 (now U.S. Pat. No. 6,606,346); (4) U.S. patent application Ser. No. 09/993,335, filed Nov. 6, 2001. Each of the aforementioned patent applications, patents, and provisional application are incorporated by reference herein in their entireties.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to signal correlators for digital signal receivers and, more particularly, to a method and apparatus processing satellite positioning system signals in a mobile receiver.

2. Description of the Background Art

Global Positioning System (GPS) receivers use measurements from several satellites to compute position. GPS receivers normally determine their position by computing time delays between transmission and reception of signals transmitted from satellites and received by the receiver on or near the surface of the earth. The time delays multiplied by the speed of light provide the distance from the receiver to each of the satellites that are in view of the receiver.

More specifically, each GPS signal available for commercial use utilizes a direct sequence spreading signal defined by a unique pseudo-random noise (PN) code (referred to as the coarse acquisition (C/A) code) having a 1.023 MHz spread rate. Each PN code bi-phase modulates a 1575.42 MHz carrier signal (referred to as the L1 carrier) and uniquely identifies a particular satellite. The PN code sequence length is 1023 chips, corresponding to a one millisecond time period. One cycle of 1023 chips is called a PN frame or epoch.

GPS receivers determine the time delays between transmission and reception of the signals by performing a series of correlations between the incoming signals and internally generated PN signal sequences (also referred to as reference codes or PN reference codes). For each incoming signal, the correlation process can be lengthy, as both the time delay and the exact frequency of the signal are unknown. To test for the presence of a signal, the receiver is tuned to a particular frequency, and the incoming signal is correlated with the PN reference code having a particular code shift corresponding to a time delay. If no signal is detected, the PN reference code is shifted and the correlation is repeated for the next possible time delay. To find a given signal, receivers traditionally conduct a two dimensional search, checking each delay possibility over a range of frequencies. In addition, each individual correlation is typically performed over one or more milliseconds in order to allow sufficient signal averaging to distinguish the signal from the noise. Because many thousands frequency and time delay possibilities are checked, the overall acquisition process can take tens of seconds.

The measured time delays produced by the correlation process are referred to as “sub-millisecond pseudoranges”, since they are known modulo the 1 millisecond PN frame boundaries. By resolving the integer number of milliseconds associated with each measured time delay, then one has true, unambiguous pseudoranges. A set of four pseudoranges together with knowledge of absolute times of transmission of the GPS signals and satellite positions in relation to these absolute times is sufficient to solve for the position of the GPS receiver. The absolute times of transmission (or reception) are needed in order to determine the positions of the GPS satellites at the times of transmission and hence to compute the position of the GPS receiver.

Accordingly, each of the GPS satellites broadcasts a model of satellite orbit and clock data known as the satellite navigation message. The satellite navigation message is a 50 bit-per-second (bps) data stream that is modulo-2 added to the PN code with bit boundaries aligned with the beginning of a PN frame. There are exactly 20 PN frames per data bit period (20 milliseconds). The satellite navigation message includes satellite-positioning data, known as “ephemeris” data, which identifies the satellites and their orbits, as well as absolute time information (also referred to herein as “GPS time” or “time-of-day”) associated with the satellite signal. The absolute time information is in the form of a second of the week signal, referred to as time-of-week (TOW). This absolute time signal allows the receiver to unambiguously determine a time tag for when each received signal was transmitted by each satellite.

In some GPS applications, the signal strengths of the satellite signals are so low that either the received signals cannot be processed, or the time required to process the signals is excessive. Detecting attenuated signals requires each correlation to be performed over a relatively long period of time. For example integration may be performed over a few seconds, as opposed to the 1-10 millisecond period used in traditional GPS receivers. The two dimensional sequential search process employed by traditional receivers becomes impractical at such long integration times, because the overall search time increases by a factor of 100 or more. Moreover, the pseudoranges measured by the process may be inaccurate, since the receiver performs the correlations at a coarse spacing, such as one-half chip, for example.

To accelerate the search process, GPS designers add additional correlators to the receiver so that multiple time delay possibilities can be checked simultaneously. Typically, each correlator that is added requires a separate code mixer and signal accumulator. For a given sensitivity level, this decreases search times in proportion to the number of correlators. To achieve the sensitivity and acquisition time demanded in low signal-to-noise ratio environments, the design might have to incorporate many thousands of correlators. This addition is typically prohibitively complex and expensive for a consumer class device.

Therefore, there exists a need in the art for improved, low cost processing of satellite positioning system signals in a mobile receiver.

SUMMARY OF THE INVENTION

A method and apparatus for processing a satellite positioning system signal is described. In one embodiment, a timing reference related to a satellite positioning system time of day is obtained from a wireless communication signal received by a mobile receiver. A bias in a local clock of the mobile receiver with respect to a frame timing of a repeating code broadcast by the satellite is compensated for in response to the timing reference. An expected code delay window is obtained for the satellite positioning system signal at the mobile receiver. The satellite positioning system signal is correlated with a reference code within the expected code delay window. The timing reference allows the mobile receiver to substantially compensate for the local clock bias associated with correlator circuitry used to measure code delays to satellite positioning signals. In one embodiment, the timing reference is combined with expected pseudorange data to determine the expected code delay window over which the satellite signals are correlated. In another embodiment, the timing reference is further compensated to account for the distance of the mobile receiver from a wireless base station.

In another embodiment, an expected code delay window is obtained at the mobile receiver. The mobile receiver selects a sampling resolution in response to a size of the expected code delay window. The satellite positioning system signal is sampled at the selected sampling resolution. The sampled satellite positioning system signal is correlated with a reference code. In one embodiment, a higher sampling resolution is selected when the size of the code delay window satisfies a threshold, which enables more accurate code delay measurements.

BRIEF DESCRIPTION OF DRAWINGS

So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.

FIG. 1 is a block diagram depicting an exemplary embodiment of a position location system;

FIG. 2 is a block diagram depicting an exemplary embodiment of a mobile receiver constructed in accordance with the invention;

FIG. 3 is a block diagram depicting an exemplary embodiment of a GPS receiver constructed in accordance with the invention;

FIG. 4 is a block diagram depicting an exemplary embodiment of correlation circuitry constructed in accordance with the invention;

FIG. 5 is a graph illustrating an exemplary embodiment of a correlation response for an entire PN frame; and

FIG. 6 is a flow diagram depicting an exemplary embodiment of a method for processing a satellite positioning system signal in accordance with the invention.

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.

DETAILED DESCRIPTION OF THE INVENTION

A method and apparatus for processing a satellite positioning system signal in a mobile receiver is described. Those skilled in the art will appreciate that the invention may be used with various types of mobile or wireless devices that are “location-enabled,” such as cellular telephones, pagers, laptop computers, personal digital assistants (PDAs), and like type wireless devices known in the art. Generally, a location-enabled mobile device is facilitated by including in the device the capability of processing satellite positioning system (SPS) satellite signals.

FIG. 1 is a block diagram depicting an exemplary embodiment of a position location system 100. The system 100 comprises a mobile receiver 102 in communication with a server 108 via a wireless communication network 110. The mobile receiver 102 is configured for communication with the server 108 over a communication link between an antenna 118 and a base station 109 of the wireless communication network 110. The wireless communication network 110 may comprise a cellular communication network having a plurality of base stations or cell sites, including the base station 109. The server 108 may be disposed in a serving mobile location center (SMLC) of the wireless communication network 110. The mobile receiver 102 is configured to receive satellite signals from a plurality of satellites 112 via an antenna 116. The mobile receiver 102 processes the received satellite signals to produce satellite measurement data (e.g., pseudoranges, Doppler measurements).

Satellite navigation data, such as ephemeris for at least the satellites 112, may be collected by a network of tracking stations (“reference network 114”). The reference network 114 may include several tracking stations that collect satellite navigation data from all the satellites in the constellation, or a few tracking stations, or a single tracking station that only collects satellite navigation data for a particular region of the world. An exemplary system for collecting and distributing ephemeris is described in commonly-assigned U.S. Pat. No. 6,411,892, issued Jun. 25, 2002, which is incorporated by reference herein in its entirety. The reference network 114 may provide the collected satellite navigation data to the server 108. Upon request, the server 108 may transmit satellite trajectory data (e.g., ephemeris, almanac, or some other satellite trajectory model) to the mobile receiver 102. Alternatively, the mobile receiver 102 may receive satellite trajectory data (e.g., ephemeris, almanac, or some other satellite trajectory model) via a communications network 115 (e.g., a computer network, such as the Internet). Notably, the satellite trajectory data may comprise a long term satellite trajectory model, as described in commonly-assigned U.S. Pat. No. 6,560,534, issued May 6, 2003, which is incorporated by reference herein in its entirety.

In one embodiment, the mobile receiver 102 sends the satellite measurement data to the server 108 along with a time-tag. The server 108 receives satellite navigation data for at least the satellites 112 from the reference network 114. The server 108 locates position of the mobile receiver 102 using the satellite measurement data and the satellite navigation data (referred to as the mobile station assisted or “MS-assisted” configuration). In another embodiment, the mobile receiver 102 obtains satellite trajectory data from either the server 108 or the communications network 115. The mobile receiver 102 locates its own position using the satellite measurement data and the trajectory data (referred to as the mobile station based or “MS-based” configuration). In yet another embodiment, the mobile receiver 102 may locate its own position by decoding satellite navigation message from the satellite signals, rather than receiving the satellite trajectory data from an external source (referred to as the autonomous configuration).

In any configuration, the mobile receiver 102 may use satellite signal acquisition assistance data (“acquisition assistance data”) to assist in acquiring satellite signals and obtaining satellite measurement data. Acquisition assistance data may be computed using satellite trajectory data (e.g., ephemeris or other satellite trajectory model) and an approximate position of the mobile receiver 102. An approximate position of the mobile receiver 102 may be obtained using various position estimation techniques known in the art, including use of transitions between base stations of the wireless communication network 110, use of a last known location of the mobile receiver 102, use of a location of the base station 109 in communication with the mobile receiver 102, use of a location of the wireless communication network 110 as identified by a network ID, or use of a location of a cell site of the wireless communication network 110 in which the mobile receiver 102 is operating as identified by a cell ID.

The acquisition assistance data includes expected pseudorange data. In one embodiment of the invention, the acquisition assistance data includes expected pseudoranges from the satellites 112 to an assumed position of the mobile receiver 102 (approximate position) at an assumed time-of-day. The expected pseudoranges may be computed using the satellite trajectory data. The details of such computations are well known in the art and, for purposes of clarity, are not repeated herein. The expected pseudoranges may be computed by the server 108 and transmitted to the mobile receiver 102 upon request. Alternatively, if the mobile receiver 102 has obtained satellite trajectory data, the mobile receiver 102 may compute the expected pseudoranges.

In one embodiment, the expected pseudoranges are derived from a model that is valid over specified period of time (“pseudorange model”). The mobile receiver 102 may apply a time-of-day to the pseudorange model to extract appropriate expected pseudorange parameters. Exemplary processes for forming pseudorange models as acquisition assistance data are described in commonly-assigned U.S. Pat. No. 6,453,237, issued Sep. 17, 2002, which is incorporated by reference herein in its entirety. A pseudorange model may be formed by the server 108 and transmitted to the mobile receiver 102 upon request. Alternatively, if the mobile receiver 102 has obtained satellite trajectory data, the mobile receiver 102 may form the pseudorange model.

In one embodiment, the acquisition assistance data may be formatted as described in ETSI TS 101 527 (3GPP TS 4.31), which is shown below in Table 1. Notably, the acquisition assistance data defined in 3GPP TS 4.31 may include a satellite vehicle identifier (SVID), zeroth and first order Doppler terms, a Doppler uncertainty, an expected code phase (e.g., sub-millisecond pseudorange), an integer code phase, a code phase search window, and expected azimuth and elevation data. The range of possible values and associated resolutions are shown for each of the parameters.

TABLE 1 Parameter Range Resolution SVID/PRNID 1-64 (0-63) n/a Doppler (0^(th) order term) −5,120 Hz to 5,117.5 Hz 2.5 Hz Doppler (1^(st) order term) −1-0.5 n/a Doppler Uncertainty 12.5 Hz-200 Hz n/a [2^(−n)(200) Hz, n = 0-4] Code Phase 0-1022 chips 1 chip Integer Code Phase  0-19 1 C/A period GPS Bit number 0-3 n/a Code Phase Search 1-192 chips n/a Window Azimuth 0-348.75 deg 11.25 deg Elevation 0-78.75 deg 11.25 deg

The server 108 illustratively comprises an input/output (I/O) interface 104, a central processing unit (CPU) 124, support circuits 106, and a memory 120. The CPU 124 is coupled to the memory 120 and the support circuits 106. The memory 120 may be random access memory, read only memory, removable storage, hard disc storage, or any combination of such memory devices. The support circuits 106 include conventional cache, power supplies, clock circuits, data registers, I/O interfaces, and the like to facilitate operation of the server 108. The I/O interface 104 is configured to receive satellite navigation data from the reference network 114. The I/O interface 104 is also configured for communication with the wireless communication network 110. Various processes and methods described herein may be implemented using software 122 stored in the memory 120 for execution by the CPU 124. Alternatively, the server 108 may implement such processes and methods in hardware or a combination of software and hardware, including any number of processors independently executing various programs and dedicated hardware, such as application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), and the like.

The base station 109 is configured to broadcast a time synchronization signal to enable the mobile receiver 102 to synchronize to the base station 109 as a first step in establishing communication with the wireless communication network 110. The time synchronization signal includes a timing message that is related to GPS time. The timing message may be related absolutely to GPS time (e.g., the timing message may be a system time message) or may be related to a sub-millisecond portion of GPS time (e.g., the timing message may be a frame number and information relating the frame number to GPS time). In either case, information from the time synchronization signal may be used to establish a timing reference for the mobile receiver 102.

For example, the base station 109 may employ a separate synchronization channel for broadcasting a time message that contains the system time relative to timing markers in the synchronization channel. The system time may be equivalent to GPS time or may have some known relationship to GPS time. The mobile receiver 102 may derive the system time from the time synchronization signal and determine a timing reference related to GPS time. The timing reference may be used to calibrate clock circuits within the mobile receiver 102, or may be used to establish a time offset between such clock circuits and GPS time. In one embodiment, the timing reference is further compensated to account for the distance of the mobile receiver 102 from the base station 109. This compensation makes use of a measurement of the round trip signal delay between base station 109 and the mobile receiver 102. In this manner, the mobile receiver 102 may be synchronized to GPS time.

An exemplary cellular communication network that employs such a timing synchronization signal is the North American CDMA (code division multiple access) standard (IS-95). The IS-95 system employs a separate 26.67 millisecond synchronization channel that is spread using a PN sequence of 2¹⁵ chips. Additionally, the synchronization channel is modulated with a particular Walsh code, allowing it to be separated from paging and traffic channels using different Walsh codes. The synchronization channel carries a message containing a time of day relative to the frame boundaries of the synchronization channel (“CDMA system time”). The CDMA system time is precisely related to GPS time. In one embodiment, to accurately determine GPS time from the CDMA system time, the CDMA time obtained from the synchronization channel is adjusted to remove an offset that is added by the delay in the transmission of the CDMA system time from the base station 109 to the mobile receiver 102. This adjustment is made by measuring the round-trip delay for a signal being transmitted from the mobile receiver 102 to the base station 109 and back. The synchronization channel structure for the IS-95 CDMA system is well known in the art. For purposes of clarity by example, aspects of the invention are described with respect to an IS-95 CDMA system. It is to be understood, however, that the invention may be used with other types of synchronized cellular communication networks that provide time synchronization signals, such as CDMA-2000, W-CDMA, and the like.

The present invention may also be used with non-synchronized cellular communication systems that include a mechanism for relating a non-synchronized system time to GPS time, such as global system for mobile communication (GSM), universal mobile telecommunications system (UMTS), North American time division multiple access (TDMA) (e.g., IS-136), and personal digital cellular (PDC) networks. For example, in a GSM system, the time synchronization signal comprises a synchronization burst periodically transmitted by the base station 109 and a timing message that provides a GSM time stamp associated with the synchronization burst. In some GSM networks, GSM time is not synchronized to GPS time. However, such networks may include location measurement units (LMUs). As is well known in the art, an LMU includes a GPS receiver, which is used to receive and decode time information (TOW) from the satellites in view of one or more base stations. The LMU then computes an offset value between GPS time and the time as known by the base station(s) that are near the LMU (“air-interface timing”). The offset is provided to the base station(s) for use in relating the air-interface timing to GPS time. Notably, the base station 109 may transmit an offset between its air-interface timing and GPS time to the mobile receiver 102. For example, the offset may be supplied to the mobile receiver 102 as part of an acquisition assistance data exchange as defined in 3GPP TS 4.31

As described below, the invention may synchronize to the frame timing of the PN codes broadcast by the GPS satellites using the timing reference derived from a time synchronization signal of a wireless network. This allows the mobile receiver 102 to substantially compensate for the local clock bias associated with the correlator circuitry used to measure the code delays. Then, using expected pseudorange data, the mobile receiver 102 may derive an expected code delay window over which the satellite signals may be correlated. In this manner, the invention substantially reduces the time required to detect the satellite signals, as well as increases the accuracy of the satellite measurement data.

FIG. 2 is a block diagram depicting an exemplary embodiment of the mobile receiver 102 of FIG. 1. The mobile receiver 102 illustratively comprises a GPS receiver 202, a wireless transceiver 204, a processor 206, a memory 210, and support circuits 208. The GPS receiver 202 processes satellite signals received by the antenna 116. An exemplary embodiment of the GPS receiver 202 is described below with respect to FIG. 3. The wireless transceiver 204 processes a wireless signal (e.g., a cellular signal) received by the antenna 118. The GPS receiver 202 and the wireless transceiver 204 are controlled by the processor 206. The mobile receiver 102 may include a modem 212 or other type of communications transceiver for receiving data (e.g., satellite trajectory data) from a separate communications link, such as the Internet.

The processor 206 may comprise a microprocessor, instruction-set processor (e.g., a microcontroller), or like type processing element known in the art. The processor 206 is coupled to the memory 210 and the support circuits 208. The memory 210 may be random access memory, read only memory, removable storage, hard disc storage, or any combination of such memory devices. The support circuits 208 include conventional cache, power supplies, clock circuits, data registers, I/O interfaces, and the like to facilitate operation of the mobile receiver 102. Various processes and methods described herein may be implemented using software 211 stored in the memory 210 for execution by the processor 206. Alternatively, the mobile receiver 102 may implement such processes and methods in hardware or a combination of software and hardware, including any number of processors independently executing various programs and dedicated hardware, such as ASICs, FPGAs, and the like.

Notably, in an IS-95 CDMA compatible environment, the wireless transceiver 204 detects a pilot channel of a nearby base station (e.g., the base station 109 of FIG. 1) and then proceeds to decode a synchronization channel broadcast by the base station. The wireless transceiver 204 achieves synchronization to the framing of the synchronization channel and receives a time message containing a time of day relative to the frame boundaries. Since the time of day derived from the synchronization channel is related to GPS time used by the GPS satellites, the processor 206 may derive a timing reference related to GPS time. The timing reference may be further compensated for the round-trip delay of a signal communicated between the wireless transceiver 204 and the base station 109. The processor 206 provides the timing reference to the GPS receiver 202 as a reference signal. In a GSM compatible environment, the mobile receiver 102 receives a time offset from the base station 109 that relates the air-interface timing of the base station 109 to GPS time. The wireless transceiver 204 achieves synchronization to the framing of the GSM signal and receives a GSM time message containing a time of day relative to the frame boundaries. The processor 206 derives a timing reference related to GPS time using the time offset between the air-interface timing and GPS time. The processor 206 provides the timing reference to the GPS receiver 202 as a reference signal. In either the CDMA or GSM environments, the GPS receiver 202 may use the reference signal to precisely track GPS time, typically to within a few microseconds.

FIG. 3 is a block diagram depicting an exemplary embodiment of the GPS receiver 202 of FIG. 2. The GPS receiver 202 illustratively comprises a front end 302, an analog-to-digital (A/D) converter 304, a receiver interface 205, and a set of processing channels 306 ₁ through 306 _(N) (collectively referred to as processing channels 306), where N is an integer. For purposes of clarity by example, only the processing channel 306 ₁ is shown in detail. Those skilled in the art will appreciate that the processing channels 306 ₂ through 306 _(N) are identical to the processing channel 306 ₁.

GPS signals are received by the antenna 116. The front end 302 filters, amplifies, and frequency shifts the GPS signals in a well-known manner for digitization by the A/D converter 304. Outputs of the A/D converter 304 are respectively coupled to each of the processing channels 306. The receiver interface 305 includes a bus configured to communicate with external circuitry (e.g., the processor 206), and a bus configured to communicate with each of the processing channels 306.

Each of the processing channels 306 comprises a tuner 308, a carrier numerically controlled oscillator (NCO) 310, a decimation circuit 312, a code NCO 314, correlator circuitry 316, a PN code generator 318, accumulation circuitry 320, correlation results memory 322, and control logic 324. Each of the processing channels 306 may be used to process a signal from a particular satellite. The tuner 308 is driven by the carrier NCO 310 to digitally tune a particular satellite signal. The tuner 308 may serve two purposes. First, the tuner 308 may remove any intermediate frequency component remaining after processing by the front end 302. Second, the tuner 308 may compensate for any frequency shift resulting from satellite motion, user motion, and reference frequency errors. The tuner 308 outputs baseband signal data comprises an in-phase component (I) and a quadrature component (Q).

The decimation circuit 312 processes the I and Q data from the tuner 308 to produce a series of complex signal samples with I and Q components in accordance with a sampling rate determined by the code NCO 314. In general, the sampling rate of the decimation circuit 312 may be selected to produce P samples per chip of the satellite signal PN code, where P is an integer greater than zero. In this manner, the GPS receiver 202 may operate in multiple modes of resolution. For example, in a standard resolution mode, the decimation circuit 312 may produce digital signal samples have two samples per PN code chip (i.e., the samples are spaced at ½ of a PN code chip or P=2). In a high-resolution mode, the decimation circuit 312 may produce digital signal samples having five samples per PN code chip (i.e., the samples are spaced at ⅕ of a PN code chip or P=5). Those skilled in the art will appreciate that other values for the sample spacing may be employed and that the GPS receiver 202 may operate in more than two modes of resolution.

The correlator circuitry 316 processes the I and Q samples from the decimation circuit 312. The correlator circuitry 316 correlates the I and Q signals with an appropriate PN code generated by the PN code generator 318 for the particular satellite signal. An exemplary embodiment of the correlator circuitry 316 is described below with respect to FIG. 4. The I and Q correlation results are accumulated with other I and Q correlation results by the accumulation circuitry 320 and are stored in the correlation results memory 322. The accumulation process is referred to as signal integration and is used to improve signal-to-noise ratio of the correlation results. Notably, the accumulation circuitry 320 may accumulate I and Q correlation results for a time period associated with one or more epochs of the PN code. For example, the I and Q correlation results may be accumulated over a one millisecond interval (i.e., one PN code epoch) or over a multiple millisecond interval (e.g., 10 PN code epochs or 10 milliseconds). This process is referred to as coherent integration and the associated time period is referred to as a coherent integration interval.

The coherent integration interval is limited by several factors, including uncompensated Doppler shift, 180 degree phase transitions caused by the navigation data bits, and phase shifts induced by motion of the mobile receiver 102. These factors introduce slow, but seemingly random phase variations into the signals. Over many tens of milliseconds, these phase changes cause destructive interference that defeats the purpose of coherent integration. Thus, to achieve long averaging intervals, the accumulation circuitry 320 may perform a secondary step of magnitude accumulation (also referred to as non-coherent integration).

The carrier NCO 310, the code NCO 314, the correlator circuitry 316, and the accumulation circuitry 320 are controlled by the control logic 324. The control logic 324 may receive various configuration parameters via the receiver and channel interfaces 305 and 326 (e.g., parameters generated by a processing device, such as the processor 206 in the mobile receiver 102). For example, the configuration parameters may include one or more of the desired tuning frequency of the carrier NCO 310, the desired mode of resolution for the decimation circuit 312 (e.g., standard resolution mode or high-resolution mode), the desired coherent and non-coherent integration periods, and the desired timing reference and code delay window data for the correlator circuitry. Alternatively, one or more of such configuration parameters may be generated by the control logic 324. The control logic 324 may implement the desired mode of resolution through control of the code NCO 314. For a detailed understanding of the GPS receiver 202 and the components discussed above, the reader is referred to commonly-assigned U.S. Pat. No. 6,704,348, issued Mar. 9, 2004, which is incorporated by reference herein in its entirety.

FIG. 4 is a block diagram depicting an exemplary embodiment of the correlator circuitry 316 of FIG. 3. In one embodiment, the correlator circuitry 316 comprises an adder 404, a correlator clock 406 (also referred to as a “local clock”), a code delay control circuit 405, a sync tracking circuit 407, and a set of correlators 402 ₁ through 402 _(K) (collectively referred to as correlators 402), where K is an integer greater than zero. Each of the correlators 402 is configured to receive the I and Q samples from the decimation circuit 312. Each of the correlators 402 is configured to produce a correlation between the input I and Q signals and a PN reference code. The PN reference code is successively delayed in time amongst the correlators 402 (i.e., the incoming samples are correlated with K replicas of the PN code). The code delay of the PN code for each of the correlators 402 is controlled by the code delay control circuit 405. The code delay control circuit 405 controls the code delay for each of the correlators 402 using a clock signal from the correlator clock 406 and expected pseudorange data.

In one embodiment, the sync tracking circuit 407 receives a reference signal that provides a timing reference related to GPS time (e.g., a reference signal derived from a time synchronization signal of a cellular network). As described above, the reference signal may be used to precisely track GPS time, typically to within a few microseconds. The correlator clock 406 may comprise a free-running (i.e., non-synchronized) clock. The sync tracking circuit 407 keeps track of the offset (error) between the reference signal and the timing of the correlator clock 406. The sync tracking circuit 407 supplies an offset signal to the code delay control circuit 405. In this manner, the code delay control circuit 405 can account for any error in the timing of the correlator clock 406. In another embodiment, the correlator clock 406 may comprise a steerable clock circuit. Rather than employing the sync tracking circuit 407, the timing of the correlator clock 406 may be directly controlled using the reference signal. In general, a bias in the correlator clock 406 with respect to the frame timing of the satellite PN codes is compensated for using the reference signal.

With the compensation of local clock bias, the code delay control circuit 405 may correctly center an expected code search window in order to detect the incoming signal. The expected code search window is formed using the expected pseudorange data. Notably, a sub-millisecond portion of the expected pseudorange data relates to the expected code phase offset at which the PN reference code and the incoming signal will be aligned. As is well known in the art, the particular one of the correlators 402 having the input signal and PN reference code aligned will have a high correlation output with respect to all other correlators 402. The adder 404 sums I and Q correlation results, which are supplied to the accumulation circuitry 320.

FIG. 5 is a graph 500 illustrating an exemplary correlation response 501 over a PN frame. An axis 502 represent code chips, and an axis 504 represents signal strength. Points on the chip axis 502 are spaced at an interval equal to the PN code chip length divided by the number of samples per chip (P). The correlation response 501 represents a sequence of correlation points 506 at every possible time delay (also referred to as a convolution). The number of correlation points 506 in the correlation response 501 is a function of the number of samples per chip. For example, if P=2, then the correlation response 501 includes 2046 correlation points. As is apparent from the graph 500, as the samples per chip increase (i.e., the resolution increases), the number of correlation points 506 in the correlation response 501 increases (e.g., by a factor of 1023 for every integer increase in P).

The correlation response 501 illustratively includes a peak 508 at a time delay 510. The time delay 510 corresponds to the time delay of the PN reference code that results in the greatest alignment with the incoming signal samples. As is apparent from the graph 500, the more samples per chip (i.e., the higher the resolution), the more accurate the time delay measurement becomes. For example, a resolution of two samples per chip provides a sample spacing 509 of approximately 500 nanoseconds, which corresponds to a range difference of 150 meters. A resolution of five samples per chip provides a sample spacing 509 of approximately 200 nanoseconds, which corresponds to a range difference of 60 meters. Thus, it is clear that an increase in resolution provides for a more accurate delay measurement and hence a more accurate pseudorange measurement.

Referring to FIGS. 4 and 5, to detect the peak 508, the correlators 402 must process a sufficient number of code delays in the vicinity of the peak 508, illustrated by the code delay window 512. For example, the correlators 402 may compute a full convolution such that all possible code delays are processed. If there are two samples per chip, and a full convolution is to be computed at once, then 2046 correlators are required for each of the I and Q signals (4092 total correlators). If the sample spacing is increased to five samples per chip, then 5,115 correlators are required for each of the I and Q signals (10,230 total correlators) to compute a full convolution at once. Power consumption and circuit size restrictions may make a correlator circuit having 10,230 or even 4092 correlators per channel impractical.

If the code delay window 512 is known before correlation begins, then the correlators 402 may compute only the correlations within the code delay window 512. As described below, the invention advantageously employs an expected code delay window and a timing reference related to GPS time to time the correlation process such that the correlators 402 compute only the correlations within the code delay window 512. In this manner, since only a subset of the full convolution is computed at once for each processed code epoch, either the number of correlators 402 may be reduced or the sampling resolution may be increased, as desired, depending upon the accuracy, power consumption, and circuit size constraints.

FIG. 6 is a flow diagram depicting an exemplary embodiment of a method 600 for processing a satellite positioning system signal in accordance with the invention. The method 600 begins at step 602. At step 604, external aiding data is received at the mobile receiver 102. The external aiding data includes information that may be used to derive a timing reference related to GPS time and expected code delay windows for satellites of interest. For example, the external aiding data may include a time synchronization signal broadcast by a base station of a wireless communication network, as well as acquisition assistance data provided by an external source (e.g., a server). Alternatively, the external aiding data may include a time synchronization signal broadcast by a base station of a wireless communication network, as well as satellite trajectory data (e.g., ephemeris) provided by either an external source or by the satellites. As described above, the satellite trajectory data may be used to compute acquisition assistance data given an estimated position of the mobile receiver. Whether the acquisition data is computed or received from an external source, the acquisition assistance data includes expected pseudorange data (e.g., expected pseudoranges, expected code phases, pseudorange models, and the like). The expected pseudorange data may be used to establish expected code delay windows for satellite signals of interest.

At optional step 606, the mobile receiver 102 may select a resolution mode. In one embodiment, the mobile receiver 102 may select a resolution mode for a particular channel of the GPS receiver based on the size of an expected code delay window with respect to a predefined threshold. The predefined threshold may be determined in accordance with hardware limitations (e.g., the number of correlators per channel in the GPS receiver). The resolution mode may be selected on a channel-by-channel basis. For example, if a given expected code delay window is less than 110 chips, than a particular channel in the GPS receiver may be configured in a high-resolution mode (e.g., 110 chips at five I samples and five Q samples per chip). Otherwise, the particular channel may be configured in a normal resolution mode.

At step 608, satellite signals are received and sampled by the mobile receiver 102. The satellite signals are sampled at a sampling resolution set by the mobile receiver 102. At step 610, a timing reference is derived from a time synchronization signal in the external aiding data. At step 612, a correlator clock bias within the mobile receiver 102 is compensated for using the timing reference. Without the timing reference, the timing of the correlator circuitry within the mobile receiver 102 is arbitrary relative to the timing of the satellite PN codes, which yields an unknown local clock bias. Since the timing reference is related to GPS time, the correlator clock bias may be estimated or the correlator clock may be substantially synchronized to the frame timing of the satellite PN codes. In this manner, an uncertainty component of the measured time delay caused by an unknown relative timing of the correlator circuitry is substantially reduced or eliminated. It is to be understood, however, that the timing reference may not be completely accurate. To achieve the best accuracy, the delay between the mobile receiver 102 and the base station 109 may be taken into account, as discussed above (e.g., a round-trip travel time between the mobile receiver 102 and the base station 109 may be measured when deriving the timing reference). A remaining uncertainty component of the measured time delay is related to the unknown pseudorange and any error in the timing reference with respect to GPS time.

At step 614, expected code delay windows for satellites of interest are derived from the external aiding data. The expected code delay windows account for the uncertainty component of the measured time delay related to the unknown pseudorange. Notably, the expected code delay window is based on an expected pseudorange for each satellite of interest. At step 616, each satellite signal of interest is correlated with the appropriate PN reference code within the appropriate expected code delay window derived at step 614. Since the correlator clock bias is compensated, and expected code delay windows have be determined, the mobile receiver 102 may correlate over substantially less than a full epoch of the PN code. As discussed above, this allows the mobile receiver 102 to employ less correlators and/or increase the sampling resolution. At step 618, the correlation results produced at step 616 may be analyzed to measure sub-millisecond pseudoranges to the satellites of interest. The sub-millisecond pseudoranges may be used to locate position of the mobile receiver 102 in a well known manner. The method 600 ends at step 620.

In the preceding discussion, the invention has been described with reference to application upon the United States Global Positioning System (GPS). It should be evident, however, that these methods are equally applicable to similar satellite systems, and in particular, the Russian GLONASS system, the European GALILEO system, combinations of these systems with one another, and combinations of these systems and other satellites providing similar signals, such as the wide area augmentation system (WAAS) and SBAS that provide GPS-like signals. The term “GPS” used herein includes such alternative satellite positioning systems, including the Russian GLONASS system, the European GALILEO system, the WAAS system, and the SBAS system, as well as combinations thereof.

While the foregoing is directed to illustrative embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow. 

1. A method of processing a satellite positioning system signal received by a mobile receiver from a satellite, comprising: obtaining a timing reference related to a satellite positioning system time of day from a wireless communication signal received at said mobile receiver; compensating for a bias in a local clock of said mobile receiver with respect to a frame timing of a repeating code broadcast by said satellite in response to said timing reference; obtaining an expected code delay window for said satellite positioning system signal at said mobile receiver; and correlating said satellite positioning system signal with a reference code within said expected code delay window.
 2. The method of claim 1, wherein said step of obtaining said expected code delay window comprises: receiving acquisition assistance data from a server in communication with the mobile receiver; and deriving said expected code delay window in response to said acquisition assistance data.
 3. The method of claim 1, wherein further comprising: determining a delay between said mobile receiver and a base station in communication with said mobile receiver; adjusting said timing reference in response to said delay.
 4. The method of claim 2, wherein said assistance data comprises expected pseudorange data and said expected code delay window is generated using said expected pseudorange data.
 5. The method of claim 1, wherein said step of obtaining said expected code delay window comprises: obtaining satellite trajectory data at said mobile receiver; obtaining an estimated location of said mobile receiver; and computing said code delay window in response to said satellite trajectory data and said estimated location.
 6. The method of claim 5, wherein said satellite trajectory data comprises ephemeris.
 7. The method of claim 5, wherein said satellite trajectory data comprises almanac data.
 8. The method of claim 5, wherein said satellite trajectory data is received from a server in communication with said mobile receiver.
 9. The method of claim 1, wherein said expected code delay window spans only a portion of said repeating code.
 10. The method of claim 1, further comprising: selecting a sampling resolution in response to said expected code delay window; and sampling said satellite positioning system signal at said selected sampling resolution prior to correlation step.
 11. The method of claim 1, further comprising: repeating said steps of obtaining an expected code delay window and correlating for at least one additional satellite positioning system signal received by said mobile receiver from a respective at least one additional satellite.
 12. The method of claim 1, further comprising: computing a pseudorange from said mobile receiver to said satellite in response to results of said correlation.
 13. The method of claim 1, wherein said step of compensating comprises: comparing said timing reference with a timing of said local clock to estimate said bias.
 14. The method of claim 1, wherein said step of compensating comprises: synchronizing a timing of said local clock to said timing reference.
 15. A method of processing a satellite positioning system signal received by a mobile receiver from a satellite, comprising: obtaining an expected code delay window at said mobile receiver; selecting a sampling resolution in response to a size of said expected code delay window; sampling said satellite positioning system signal at said selected sampling resolution; and correlating said sampled satellite positioning system signal with a reference code.
 16. The method of claim 15, wherein said step of selecting a sampling resolution comprises: selecting a first sampling resolution in response to said size failing a threshold; and selecting a second sampling resolution in response to said size satisfying said threshold.
 17. The method of claim 16, wherein said second sampling resolution is higher than said first sampling resolution.
 18. The method of claim 15, further comprising: obtaining a timing reference related to a satellite positioning system time-of-day from a time synchronization signal broadcast by a base station in communication with said mobile receiver; and compensating for a bias in a local clock of said mobile receiver with respect to a frame timing of a repeating code broadcast by said satellite in response to said timing reference.
 19. The method of claim 18, further comprising: obtaining acquisition assistance data; and deriving said expected code delay window in response to said acquisition assistance data.
 20. The method of claim 19, wherein said sampled satellite positioning system signal is correlated within said expected code delay window. 